package com.wo56.pushmsgcenter.common.service.interfaces;

import java.io.Serializable;
import java.util.List;

import com.wo56.pushmsgcenter.common.condition.Wrapper;

public interface IService<P> {
    /**
     * 通过条件获取所有对象，单条件模式
     *
     * @return
     */
	public List<P> getValueByWrapper(String column,String type,Object value);
    /**
     * 通过条件获取所有对象
     *
     * @return
     */
	List<P> getValueByWrapper(Wrapper wrapper);
    /**
     * 获取所有对象
     *
     * @return
     */
    List<P> getAll();
    
	/**
     * 根据id获取对象
     *
     * @param id
     * @return
     */
    P get(Serializable id);

    /**
     * 保存方法
     *
     * @Varam p
     * @return
     */
    P save(P p);

    /**
     * 保存/修改方法
     *
     * @param p
     */
    void saveOrUpdate(P p);

    /**
     * 修改方法
     *
     * @param p
     */
    void update(P p);

    /**
     * 删除方法
     *
     * @param p
     */
    boolean delete(P p);

    /**
     * 根据主键删除
     *
     * @param id
     * @return
     */
    boolean delete(Serializable id);

    /**
     * 批量添加
     *
     * @param list
     * @param size
     * @return
     */
    boolean insertBatch(List<P> list, int size);

    /**
     * 批量修改
     *
     * @param list
     * @param size
     * @return
     */
    boolean updateBatch(List<P> list, int size);

    /**
     * 批量修改
     *
     * @param list
     * @param size
     * @return
     */
    boolean saveOrUpdateBatch(List<P> list, int size);
}
